RubyGuardian

RubyGuardian是一款Ruby代码加密工具,通过将Ruby源代码编译成字节码格式来保护Ruby代码,然后进行加密,这样可防止代码被逆向。使用RubyGuardian加密的Ruby代码可以运行,但不能用于提取Ruby代码,因为加密的代码中不存在任何形式的源代码。加密的代码需要安装RubyGuardian Loader才能运行,RubyGuardian Loader是一个经过编译的Ruby模块,它会自动加载并用于运行加密的Ruby代码。
保护代码
这是一个简单的Ruby代码:
puts "Hello World!"
经过RubyGuardian加密后变成这样:
# RubyGuardian v1.1.1
unless defined?(FGLoader) then _d0=_d=__dir__; while true do _f=File.join(_d, 'fgloader', 'loader.rb'); load _f and break if File.exist?(_f); _d1=File.dirname(_d); if _d1==_d then break if defined?(FGLoader); raise LoadError, 'Ruby脚本 '+__FILE__+' 受RubyGuardian保护,需要安装RubyGuardian加载器,请将加载器放到 '+_d0+'/fgloader 目录中,以便能正常运行此文件。'; exit; else _d=_d1; end; end; end; FGLoader.load('anZtJGlubiRhXwVYWEhYWCyQRol2ggoiilnzknp4gkYmUkLWyYnWmDg8GBefza+3KaoN1/wAOCIydwjTvFpeWRXtzzRSflTfvLv+H3Yf5YoUa2QDIIElFr/Z4JMXkAeCVW7MXjdgVBiC77cTzt20IT5skpnzaFKrM5PnuUFRcfXZD+/03Z3SuLnyu6Lq5JPoWEuJgVF8UkWze5rww27SmsBrGlI72ErjSMjm9pYTfDIuN3wxNjN88QJdAAAQAAAskEaJdoIKIo+wk4EiaVhiZxHd+jCFGag9PaP+nMg1uYciIPavonFiaUOIGNh+mrn+wgdhaStoW3JygQLwu0DdRRIbwpw6Hq2tKo6LogzASd5JYs9jt1yX+n2g9JJ98bkajm4bj1Kw45MGFRKLipwcktNq+iuX3RQSAxn/XPBmR2hJxk4Q+8euJyJ/JFvynOh30mVCuPERubMgAHwzLjJ8MTY5fHEDXQAAEAAALJBGiXaMvSKCWAOf97FYZQHxOpUHT1DIwuwFoX9STXmAXiZlavkDxhVq4UVR0V7MRreTNOKxfu/JHRMUf7AmNeDl6j/R1UY3PO4WWafJkVyDmX3gr/X9Tbja66c0O+bj8aToCNOzljjl8NxWDUj+JKny7b09OjmjpqiZnxkVw1s4fCOTe4H7dwMV308LiYLMWSEdQvbtP/P4PuzXRLplhrp8')
支持的Ruby版本
RubyGuardian支持Ruby2.5、2.7、3.2的加密,加密工具可以同时为多个版本的Ruby加密Ruby文件,当为多个Ruby版本加密时,源代码必须与指定的版本语法兼容。RubyGuardian为每个版本的Ruby在代码中写入单独的字节码,在加密代码运行期间,RubyGuardian Loader将从加密代码中提取并运行所需版本的字节码。RubyGuardian主要针对SketchUp插件加密,因此支持的版本随SketchUp版本变化而变化。
支持平台
RubyGuardian当前只支持windows平台。